This invention relates generally to operating systems, and more particularly to a management console that uses snap-ins to provide management functionality.
In the development of new operating systems, significant emphasis has been put on providing improved flexibility in the configuration and extensibility of functionality without compromising the integrity of interface and administration of the operating system. Independent software vendors are encouraged to develop their own modules that can be integrated with the operating system to provide various functionality while retaining the feel and look of a uniform user interface.
One example of software developed with such emphasis in mind is the management console of the recent version of the Windows NT operating system by Microsoft Corporation. The management console is a common console framework for management applications. The management console itself does not supply any management behavior, but instead provides a common environment for software modules commonly called xe2x80x9csnap-insxe2x80x9d that may be designed by independent software vendors (ISVs). The snap-ins define the actual management behavior available to an administrator through the management console. The management console organizes and coordinates the snapins and provides an integrated user interface through which the administrator can invoke the snap-ins to provide their respective management behavior.
The flexibility and extensibility of the management console is significantly enhanced by allowing the inclusion of snap-ins called xe2x80x9cextension snap-insxe2x80x9d that extend the functionality of other existing snap-ins. In order to provide its extension functionality, an extension snap-in has to be given information of the context in which the snap-in to be extended has been invoked. For example, a Computer Management snap-in may be invoked to provide information about a computer, and an Event Logs snap-in may extend the functionality of the Computer Management snap-in by providing views of the event logs of that computer. Before the Event Logs snap-in can provide the log views, it has to know which computer is being looked at by the Computer Management snap-in.
The open architecture of the management console, however, makes it difficult to require or implement direct communication between the snap-in being extended and the extension snap-in for passing context information. Not only that the snap-ins involved may be designed by different ISVs; they may also be developed at different times. Thus, the snap-in being extended may not know how the extension snap-ins want to extend its functionality or even the existence of such extension snap-ins. It would not be feasible to require that a snap-in be modified to handle the passing of context information every time a new extension snap-in is added to the management console to extend its functionality. Moreover, the use of any non-standardized ways to pass context information between snap-ins would tend to compromise the integrity and manageability of the management console. There is therefore a need for a uniform way to pass context information from a snap-in to be extended to an extension snap-in that does not require the former to have any knowledge about the latter. Such a way to pass context information should not only be simple and efficient in operation but also be easy to implement by the developers of snap-ins.
In accordance with the present invention, there is provided a method and system that provides a uniform way to pass context information from an extended snap-in of a management console to an extension snap-in to enable the extension snap-in to provide extension functionality. The extension snap-in is recorded in a registry as intended to extend the functionality of the extended snap-in. When the extended snap-in is selected to provide its management functionality, it generates a data object that carries the context information. This data object is then passed to the extension snap-in. The extension snap-in obtains the context information from the data object and provides extension functionality according to the context information.
The advantages of the invention will become apparent with reference to the following detailed description when taken in conjunction with the drawings in which: